package pe.edu.unmsm.fiee.sispagos.presentacion.controller.reportes;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.faces.event.ActionEvent;

import org.primefaces.model.chart.CartesianChartModel;
import org.primefaces.model.chart.ChartSeries;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import pe.edu.unmsm.fiee.sispagos.negocio.modelo.ConceptoPagoDTO;
import pe.edu.unmsm.fiee.sispagos.negocio.servicio.ConceptoPagoService;
import pe.edu.unmsm.fiee.sispagos.negocio.servicio.VoucherPagoService;

@Controller
@Scope("view")
public class EstadisticaCptoController {

	private List<String> cptosSeleccionados;
	private List<ConceptoPagoDTO> cptos;
	private CartesianChartModel categoryModel;
	
	@Resource
	ConceptoPagoService conPagoService;
	@Resource
	VoucherPagoService voucherPagoService;
	
	private EstadisticaCptoController() {
		super();
		cptosSeleccionados=null;
		setCategoryModel(new CartesianChartModel());
        ChartSeries boys = new ChartSeries();  
        boys.setLabel("Conceptos de Pagos");  
        boys.set("No hay ingresos", 0);
        categoryModel.addSeries(boys);
	}
	
	@PostConstruct
	private void init(){
		setCptos(conPagoService.listarCptosxNombre(""));
	}
	
	public void generarGrafico(ActionEvent ev){
		categoryModel = voucherPagoService.generarGraficoCptosxTiempo(cptosSeleccionados);
		
	}
	
	/**************************GETTERS AND SETTERS*****************************/
	public List<String> getCptosSeleccionados() {
		return cptosSeleccionados;
	}

	public void setCptosSeleccionados(List<String> cptosSeleccionados) {
		this.cptosSeleccionados = cptosSeleccionados;
	}

	public List<ConceptoPagoDTO> getCptos() {
		return cptos;
	}

	public void setCptos(List<ConceptoPagoDTO> cptos) {
		this.cptos = cptos;
	}

	public CartesianChartModel getCategoryModel() {
		return categoryModel;
	}

	public void setCategoryModel(CartesianChartModel categoryModel) {
		this.categoryModel = categoryModel;
	}
	
}
